package interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;

import dto.*;

import java.util.*;

public interface InterfazRemotaAdministracion extends Remote{

	public static final String url = "localhost/RecursoRMI";

	public void altaSucursal(SucursalDTO s) throws RemoteException ;
	
	public void altaProductoENV(ElaboradoNoVentaDTO p) throws RemoteException;
	
	public void altaProductoEV(ElaboradoVentaDTO p) throws RemoteException;
	
	public void altaProductoCV(CompraVentaDTO p) throws RemoteException;
	
	public void altaProductoCNV(CompraNoVentaDTO p) throws RemoteException;
	
	public List<RecetaDTO> listarRecetas() throws RemoteException;
	
	public List<PlatoDTO> listarPlatos() throws RemoteException;
	
	public List<RubroCartaDTO> listarRubros() throws RemoteException;
		
	public void altaSalon(SucursalDTO sucursal, SalonDTO salon) throws RemoteException;

	public void altaSector(SucursalDTO sucursal, SalonDTO salon, SectorDTO sector) throws RemoteException;
	
	public void altaMesa(SucursalDTO sucursal, SalonDTO salon, SectorDTO sector, MesaDTO mesa) throws RemoteException;
	//Andy, necesito un listar sucursales para dar de alta las cartas (para desplegar en el combo)
	public List<SucursalDTO> listarSucursales() throws RemoteException;

	public void altaBarra(SucursalDTO s, BarraDTO b) throws RemoteException;
	
	public void altaCafeteria(SucursalDTO s, CafeteriaDTO c) throws RemoteException;
	
	public void altaCocina(SucursalDTO s, CocinaDTO c) throws RemoteException;
	
	public void altaCaja(SucursalDTO s, CajaDTO c) throws RemoteException;
	
	public void altaPlanProduccion(PlanProduccionDTO p) throws RemoteException;

	public List<TareaDTO> listarTareasActivas() throws RemoteException;

	public List<SucursalDTO> calcularOcupacionSuc(List<SucursalDTO> sucursales) throws RemoteException;

	public PlanProduccionDTO getPlanProduccion() throws RemoteException;

	public List<ProductoDTO> listarProductos() throws RemoteException;

	public boolean altaTarea(EmpleadoDTO e2, TareaDTO t) throws RemoteException;

	public EmpleadoDTO validarUsuarioAdmin(String usuario, String password) throws RemoteException;

//Atencion a Cliente
	public List<MesaDTO> listarMesasPorSector(SectorDTO sector, int cantComensales) throws RemoteException;
	
	public List<MesaDTO> armarMesaCompuesta(SectorDTO sector, int cantComensales) throws RemoteException;
	
	public void AbrirMesa(MesaSimpleDTO mesaDto,MozoDTO mozoDto) throws RemoteException;
	
	public void AbrirMesaComp(List<MesaSimpleDTO> mesasDto,MozoDTO mozoDto) throws RemoteException;
	
	public void AsignarMozoAMesa(MesaDTO mesaDto, MozoDTO mozoDto) throws RemoteException;
	
	public void AsignarComandaAMesa(MesaDTO mesaDTO, ComandaDTO comandaDTO) throws RemoteException;
	
	public void CerrarMesa(MesaDTO mesaDto) throws RemoteException;

	public List<MesaDTO> listarMesasPorMozo (MozoDTO mozo) throws RemoteException;

	public List<ProductoDTO> listarProductosElaborados() throws RemoteException;

	public void agregarItemAComanda(MesaDTO mesaDto, PlatoDTO platoDto, int cantidad) throws RemoteException;

	public void confirmarComanda(MesaDTO mesaDto) throws RemoteException;

	public EmpleadoDTO validarUsuario(String usuario, String password, String tipo) throws RemoteException;
	
}